﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OpenControls.Core
{
    public interface IControlCustomizer
    {
        /// <summary>
        /// Gets the customization of the control.
        /// </summary>
        /// <returns></returns>
        IStyle GetCustomization();

        void LoadMyStyle(ICustomizableControl control);

        /// <summary>
        /// Perform the customization of the control.
        /// </summary>
        void PerformCustomization(ICustomizableControl control);

        /// <summary>
        /// Perform the customization of the control.
        /// </summary>
        void PerformCustomization(ICustomizableControl control, IStyle style);

        /// <summary>
        /// Apply the customization of the parent control for the control.
        /// </summary>
        void ApplyParentCustomization(ICustomizableControl control);

        /// <summary>
        /// Perform a clone customization.
        /// </summary>
        /// <param name="control">ICustomizableControl that will be cloned.</param>
        void CloneCustomization(ICustomizableControl control);

        void ApplyColorCustomization(ICustomizableControl control);

        void ApplyFontCustomization(ICustomizableControl control);
    }
}
